package com.example.barnes.ummoqmasterdashboard; import android.app.Activity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import com.hudomju.swipe.SwipeToDismissTouchListener; import com.hudomju.swipe.adapter.ListViewAdapter; import java.util.ArrayList; import java.util.List; import static android.widget.Toast.LENGTH_SHORT; /** * Created by barnes on 12/6/15. */ public class ListViewActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.list_view_activity); init((ListView) findViewById(R.id.list_view)); } private void init(ListView listView) { final MyBaseAdapter adapter = new MyBaseAdapter(); listView.setAdapter(adapter); final SwipeToDismissTouchListener<ListViewAdapter> touchListener = new SwipeToDismissTouchListener<>( new ListViewAdapter(listView), new SwipeToDismissTouchListener.DismissCallbacks<ListViewAdapter>() { @Override public boolean canDismiss(int position) { return true; } @Override public void onDismiss(ListViewAdapter view, int position) { adapter.remove(position); } }); listView.setOnTouchListener(touchListener); // Setting this scroll listener is required to ensure that during ListView scrolling, // we don't look for swipes. listView.setOnScrollListener((AbsListView.OnScrollListener) touchListener.makeScrollListener()); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if (touchListener.existPendingDismisses()) { touchListener.undoPendingDismiss(); } else { Toast.makeText(ListViewActivity.this, "Position " + position, LENGTH_SHORT).show(); } } }); } static class MyBaseAdapter extends BaseAdapter { private static final int SIZE = 100; private final List<String> mDataSet = new ArrayList<>(); MyBaseAdapter() { for (int i = 0; i < SIZE; i++) mDataSet.add(i, "This is row number " + i); } @Override public int getCount() { return mDataSet.size(); } @Override public String getItem(int position) { return mDataSet.get(position); } @Override public long getItemId(int position) { return position; } public void remove(int position) { mDataSet.remove(position); notifyDataSetChanged(); } static class ViewHolder { TextView dataTextView; ViewHolder(View view) { dataTextView = ((TextView) view.findViewById(R.id.txt_data)); view.setTag(this); } } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder = convertView == null ? new ViewHolder(convertView = LayoutInflater.from(parent.getContext()) .inflate(R.layout.list_item, parent, false)) : (ViewHolder) convertView.getTag(); viewHolder.dataTextView.setText(mDataSet.get(position)); return convertView; } } }